package com.td.framework.webmanager.bmxx.service.impl;

import java.util.List;

import com.td.framework.common.BaseService;
import com.td.framework.utils.ChineseTools;
import com.td.framework.webmanager.bmxx.dao.BmxxDao;
import com.td.framework.webmanager.bmxx.service.BmxxService;
import com.td.framework.webmanager.domain.AppsysBmxx;

/**
 * 
 * Title:部门信息处理业务层实现类 Description:处理部门信息 Copyright: Copyright (c) 2008 Company
 * 北京水软科技有限公司
 * @version 1.0
 */
public class BmxxServiceImpl extends BaseService implements BmxxService {
	private BmxxDao bmxxDao; // 部门信息数据层接口;
	private List<AppsysBmxx> list = null;// 部门信息集合;
	
	/**
	 * @toDo:得到总记录数;
	 * @return rows;
	 */
	public int getRows(String sjbmbh, AppsysBmxx appsysBmxx,String yhbh,String defaultBmbh,String xtbm) {
		String bmmc = "";
		if (appsysBmxx != null)
		{
			bmmc = appsysBmxx.getBmmc() + "";
		}
		bmxxDao.setSql(sjbmbh, bmmc,yhbh,defaultBmbh,xtbm);
		return bmxxDao.getRows();
	}
	
	/**
	 * @toDo 通过上级部门编号查询部门信息;
	 * @param sjbmbh,appsysBmxx
	 * @param pageSize,startRow
	 * @return 部门集合;
	 */
	public List<AppsysBmxx> findBySjbmbh(String sjbmbh, AppsysBmxx appsysBmxx,String yhbh,String defaultBmbh,String xtbm,int pageSize, int startRow){		
		String bmmc = "";
		if (appsysBmxx != null)
		{
			bmmc = appsysBmxx.getBmmc() + "";
		}
		bmxxDao.setSql(sjbmbh, bmmc,yhbh,defaultBmbh,xtbm);
		list = bmxxDao.findBySjbmbh(sjbmbh,defaultBmbh, pageSize,startRow);
		return list;
	}
	
	/**
	 * @toDo 通过上级部门编号查询部门信息;
	 * @param sjbmbh
	 * @param pageSize,startRow
	 * @return 部门集合;
	 */
	@SuppressWarnings("unchecked")
	public List<AppsysBmxx> findBySjbmbh(String sjbmbh)
	{
		return bmxxDao.findBySjbmbh(sjbmbh);
	}
	
	/**
	 * @toDo 部门排序;
	 * @param appsysBmxxs
	 * @return
	 */
	public boolean orderBmxx(String[] bmId, String[] pxh)
	{
		return bmxxDao.orderBmxx(bmId,pxh);
	}
	
	/**
	 * @toDo:保存部门信息
	 * @param bmxx
	 * @return boolean
	 */
	public boolean addBmxx(AppsysBmxx bmxx) {
		bmxx.setPyzt(ChineseTools.getFirstLetter(bmxx.getBmmc()));
		return bmxxDao.addBmxx(bmxx);
	}

	/**
	 * @toDo 得到生成组织结构树的部门集合;
	 * @return 部门集合;
	 */
	@SuppressWarnings("unchecked")
	public List<AppsysBmxx> getTreeList() {
		list = bmxxDao.getTreeList();
		return list;
	}

	/**
	 * @toDo: 通过部门编号得到部门信息;
	 * @param bmbh
	 * @return 部门信息对象;
	 */
	public AppsysBmxx getBmxx(String bmbh) {
		return bmxxDao.getBmxx(bmbh);
	}
	/**
	 * @toDo: 通过部门固定编号得到部门信息;
	 * @param bmbh
	 * @return 部门信息对象;
	 */
	public AppsysBmxx getBmxxBygdbh(String bmgdbh) 
	{
		return bmxxDao.getBmxxBygdbh(bmgdbh);
	}
	
	/**
	 *更新部门信息;
	 * @param bmxx
	 * @return boolean;
	 */
	public boolean updateBmxx(AppsysBmxx bmxx) {
		bmxx.setPyzt(ChineseTools.getFirstLetter(bmxx.getBmmc()));
		return bmxxDao.updateBmxx(bmxx);
	}
	
	/**
	 * 通过用户/用户组编号结合部门权限查询部门信息
	 * @param yhbh 用户编号
	 * @param defaultBmbh 默认部门编号
	 * @param yhlb 用户类别 ,0 为用户组,1 为用户
	 * @param xtbm 系统编码
	 * @param flag 0为部门分配时用, 1为生成与权限结合的部门树
	 * @return list;
	 */
	public List<AppsysBmxx> findBmxxByYhbh(String yhbh,String defaultBmbh, int yhlb, String xtbm,int flag)
	{
		return bmxxDao.findBmxxByYhbh(yhbh,defaultBmbh, yhlb, xtbm,flag);
	}
	
	/**
	 * 删除部门信息;
	 * @param bmbhs
	 * @return boolean;
	 */
	public boolean deleteBmxx(String[] bmbhs) {

		return bmxxDao.deleteBmxx(bmbhs);
	}

	/**
	 *get部门信息数据层接口;
	 * @return the bmxxDao
	 */
	public BmxxDao getBmxxDao() {
		return bmxxDao;
	}

	/**
	 * @toDo:set部门信息数据层接口;
	 * @param bmxxDao
	 */
	public void setBmxxDao(BmxxDao bmxxDao) {
		this.bmxxDao = bmxxDao;
	}
	/**
	 * 查询用用户名称是否被占用
	 * @param bmmc 部门名称
	 */
	public boolean checkBmmc(String bmmc){
		return this.bmxxDao.checkBmmc(bmmc);
	}
	
	/**
	 * 查询该部门下面是否还有人员
	 * @param bmbh 部门编号
	 */
	public  boolean checkHasPeople(String bmbh){
		return this.bmxxDao.checkHasPeople(bmbh);
	}
}
